package com.itcoon.cloud.framework.transform;

import com.itcoon.cloud.framework.transform.build.helper.DefaultHelper;
import com.itcoon.cloud.framework.transform.build.helper.InstanceHelper;
import com.itcoon.cloud.framework.transform.build.helper.ListHelper;
import com.itcoon.cloud.framework.transform.build.helper.ParameterizedHelper;

import java.lang.reflect.Type;

public class Transformer {

    public static <T, R> ParameterizedHelper<T, R> to(Class<R> targetClass, Type... actualTypes){
        return new ParameterizedHelper<>(targetClass, actualTypes);
    }

    public static <T, R> InstanceHelper<T, R> to(R target){
        return new InstanceHelper<>(target);
    }

    public static <T, R> DefaultHelper<T, R> to(Class<R> targetType){
        return new DefaultHelper<>(targetType);
    }

    public static <T, R> ListHelper<T, R> toList(Class<R> targetClass, Type... actualTypes){
        return new ListHelper<>(targetClass, actualTypes);
    }

}
